package com.jiukuaidao.zhulin.module.commodity.contract;

import com.jiukuaidao.library.base.IBasePresenter;
import com.jiukuaidao.library.base.IBaseView;
import com.jiukuaidao.zhulin.data.TaskDataSource;
import com.jiukuaidao.zhulin.entity.ApiSortCatList;
import com.jiukuaidao.zhulin.entity.ApiSortPros;
import com.jiukuaidao.zhulin.entity.EventShoppingCartInfo;

import java.util.List;

/**
 * Author : H_Joker
 * Date : 2016/6/6
 * Description :
 */
public interface SortProContract {

    int REFRESH = 1;
    int LOADMORE = 2;

    interface View extends IBaseView<Presenter> {

        void refreshProsUi();

        /**
         * recyclerview加载完毕
         *
         * @param act     REFRESH：刷新 LOADMORE：加载更多
         * @param isOver  true：没有更多数据 false：还有数据
         * @param isEmpty true：当前没有数据 false：当前有数据
         */
        void loadComplete(int act, boolean isOver, boolean isEmpty);

    }

    interface Presenter extends IBasePresenter {

        /**
         * 设置分类信息
         *
         * @param cateInfo
         */
        void setCateInfo(ApiSortCatList.ApiSortCateListItem cateInfo);

        /**
         * 获取分类信息
         *
         * @return
         */
        ApiSortCatList.ApiSortCateListItem getCateInfo();

        /**
         * 根据分类及筛选条件获取商品列表
         *
         * @param act
         * @param categoryIds 筛选条件集合
         * @param pageIndex
         * @param lat
         * @param lon
         * @param cityCode
         * @param tagId       热门推荐的id
         * @param brandId     热门品牌的id
         * @param keyword     模糊搜索关键词
         */
        void loadProList(final int act, String categoryIds, final int pageIndex, String lat, String lon, String cityCode, String tagId, String brandId, String keyword);

        void setCurrenPageIndex(int currenPageIndex);

        int getCurrentPageIndex();

        void setPros(List<ApiSortPros.ApiSortProItem> list);

        void setShoppingCart(List<EventShoppingCartInfo> datas);

        List<EventShoppingCartInfo> getShoppingCart();

        List<ApiSortPros.ApiSortProItem> getPros();
    }

    interface Model extends TaskDataSource {

        /**
         * 设置分类信息
         *
         * @param cateInfo
         */
        void setCateInfo(ApiSortCatList.ApiSortCateListItem cateInfo);

        /**
         * 获取分类信息
         *
         * @return
         */
        ApiSortCatList.ApiSortCateListItem getCateInfo();

        void setCurrenPageIndex(int currenPageIndex);

        int getCurrentPageIndex();

        void setPros(List<ApiSortPros.ApiSortProItem> list);

        List<ApiSortPros.ApiSortProItem> getPros();

        void setShoppingCart(List<EventShoppingCartInfo> datas);

        List<EventShoppingCartInfo> getShoppingCart();
    }


}
